package com.vcredit.creditcat.dto.speedloan;

import java.io.Serializable;
import java.util.List;

public class SpeedloanPrecheckItemDto implements Serializable {

	private static final long serialVersionUID = 3423720320330091582L;

	private Long productId; // 产品id

	private String productName; // 产品名称

	private String productIcon; // 产品icon

	private String jumpUrl; // 跳转网址

	private Integer maxAmt; // 最高额度

	private Integer minAmt; // 最低额度

	private String monthlyRate; // 利率

	private String limitRange;// 额度范围

	private int creditPhase; // 授信阶段（0、认证中 ;1、认证失败 ; 2、额度审批中; 3、授信成功; 4、授信失败;
								// 5、有可申请的产品, 6、未申请 7：授信失败，可挽回 8:授信后,放款   
	//0：已审批-失败；1：已审批-成功；2：审批中；3：未申请过；4：未申请过，认证条件齐全；5：额度获取失败临时状态; 7：授信失败，可挽回；8：放款审核中；9：放款审核未通过；10：放款审核通过；11：还款中；12：还款逾期中；13：已结清；22：快贷流程提交中 
	private String creditDesc;// 阶段描述（当creditPhase=8时使用，例如：签约中、放款中、还款中、已结清）

	private String frozenTime; // 产品下次申请的时间
	private String tag; // 标签
	public String salesModel;// string 销售模式，例如：自营、合作方、空白）
	private String featureTag;// 个性标签 热门新品
	private CheckCustResultDto preCheckResult; // 校验用户结果

	private int getLimit;// 获得额度

	private long expiryTime;// 有效期

	private List<SpeedloanAuthItemDto> authItems;

	public String getFeatureTag() {
		return featureTag;
	}

	public void setFeatureTag(String featureTag) {
		this.featureTag = featureTag;
	}

	public String getSalesModel() {
		return salesModel;
	}

	public void setSalesModel(String salesModel) {
		this.salesModel = salesModel;
	}

	public String getTag() {
		return tag;
	}

	public void setTag(String tag) {
		this.tag = tag;
	}

	public int getGetLimit() {
		return getLimit;
	}

	public void setGetLimit(int getLimit) {
		this.getLimit = getLimit;
	}

	public long getExpiryTime() {
		return expiryTime;
	}

	public void setExpiryTime(long expiryTime) {
		this.expiryTime = expiryTime;
	}

	public SpeedloanPrecheckItemDto() {
		super();
	}

	public SpeedloanPrecheckItemDto(Builder builder) {
		this.productId = builder.productId;
		this.productName = builder.productName;
		this.productIcon = builder.productIcon;
		this.jumpUrl = builder.jumpUrl;
		this.maxAmt = builder.maxAmt;
		this.minAmt = builder.minAmt;
		this.monthlyRate = builder.monthlyRate;
		this.creditPhase = builder.creditPhase;
		this.creditDesc = builder.creditDesc;
		this.frozenTime = builder.frozenTime;
		this.authItems = builder.authItems;
		this.limitRange = builder.limitRange;
		this.preCheckResult = builder.preCheckResult;
		this.getLimit = builder.getLimit;
		this.expiryTime = builder.expiryTime;
		this.tag = builder.tag;
		this.salesModel = builder.salesModel;
		this.featureTag = builder.featureTag;
	}

	public String getLimitRange() {
		return limitRange;
	}

	public void setLimitRange(String limitRange) {
		this.limitRange = limitRange;
	}

	public int getCreditPhase() {
		return creditPhase;
	}

	public void setCreditPhase(int creditPhase) {
		this.creditPhase = creditPhase;
	}

	public String getCreditDesc() {
		return creditDesc;
	}

	public void setCreditDesc(String creditDesc) {
		this.creditDesc = creditDesc;
	}

	public String getFrozenTime() {
		return frozenTime;
	}

	public void setFrozenTime(String frozenTime) {
		this.frozenTime = frozenTime;
	}

	public List<SpeedloanAuthItemDto> getAuthItems() {
		return authItems;
	}

	public void setAuthItems(List<SpeedloanAuthItemDto> authItems) {
		this.authItems = authItems;
	}

	public Long getProductId() {
		return productId;
	}

	public void setProductId(Long productId) {
		this.productId = productId;
	}

	public String getProductName() {
		return productName;
	}

	public void setProductName(String productName) {
		this.productName = productName;
	}

	public String getProductIcon() {
		return productIcon;
	}

	public void setProductIcon(String productIcon) {
		this.productIcon = productIcon;
	}

	public Integer getMaxAmt() {
		return maxAmt;
	}

	public void setMaxAmt(Integer maxAmt) {
		this.maxAmt = maxAmt;
	}

	public Integer getMinAmt() {
		return minAmt;
	}

	public void setMinAmt(Integer minAmt) {
		this.minAmt = minAmt;
	}

	public String getMonthlyRate() {
		return monthlyRate;
	}

	public void setMonthlyRate(String monthlyRate) {
		this.monthlyRate = monthlyRate;
	}

	public String getJumpUrl() {
		return jumpUrl;
	}

	public void setJumpUrl(String jumpUrl) {
		this.jumpUrl = jumpUrl;
	}

	public CheckCustResultDto getPreCheckResult() {
		return preCheckResult;
	}

	public void setPreCheckResult(CheckCustResultDto preCheckResult) {
		this.preCheckResult = preCheckResult;
	}

	public static class Builder {
		private Long productId; // 产品id
		private String productName; // 产品名称
		private String productIcon; // 产品icon
		private String jumpUrl; // 跳转网址
		private Integer maxAmt; // 最高额度
		private Integer minAmt; // 最低额度
		private String monthlyRate; // 利率
		private String limitRange;// 额度区间
		private int creditPhase; // 授信阶段（0、认证中 ;1、认证失败 ; 2、额度审批中; 3、授信成功;
									// 4、授信失败）
		private String creditDesc;// 阶段描述（当creditPhase=8时使用，例如：签约中、放款中、还款中、已结清）
		private String frozenTime; // 产品下次申请的时间
		private CheckCustResultDto preCheckResult; // 校验用户结果
		private String tag; // 标签
		private String salesModel;
		private String featureTag;
		private List<SpeedloanAuthItemDto> authItems;

		private int getLimit;// 获得额度
		private long expiryTime;// 有效期
		
		public Builder salesModel(String salesModel) {
			this.salesModel = salesModel;
			return this;
		}
		public Builder featureTag(String featureTag) {
			this.featureTag = featureTag;
			return this;
		}
		public Builder getLimit(Integer getLimit) {
			this.getLimit = getLimit;
			return this;
		}

		public Builder expiryTime(Long expiryTime) {
			this.expiryTime = expiryTime;
			return this;
		}

		public SpeedloanPrecheckItemDto build() {
			return new SpeedloanPrecheckItemDto(this);
		}

		public Builder productId(Long productId) {
			this.productId = productId;
			return this;
		}

		public Builder tag(String tag) {
			this.tag = tag;
			return this;
		}

		public Builder productName(String productName) {
			this.productName = productName;
			return this;
		}

		public Builder productIcon(String productIcon) {
			this.productIcon = productIcon;
			return this;
		}

		public Builder jumpUrl(String jumpUrl) {
			this.jumpUrl = jumpUrl;
			return this;
		}

		public Builder maxAmt(Integer maxAmt) {
			this.maxAmt = maxAmt;
			return this;
		}

		public Builder minAmt(Integer minAmt) {
			this.minAmt = minAmt;
			return this;
		}

		public Builder monthlyRate(String monthlyRate) {
			this.monthlyRate = monthlyRate;
			return this;
		}

		public Builder limitRange(String limitRange) {
			this.limitRange = limitRange;
			return this;
		}

		public Builder creditPhase(int creditPhase) {
			this.creditPhase = creditPhase;
			return this;
		}

		public Builder creditDesc(String creditDesc) {
			this.creditDesc = creditDesc;
			return this;
		}

		public Builder frozenTime(String frozenTime) {
			this.frozenTime = frozenTime;
			return this;
		}

		public Builder preCheckResult(CheckCustResultDto preCheckResult) {
			this.preCheckResult = preCheckResult;
			return this;
		}

		public Builder authItems(List<SpeedloanAuthItemDto> authItems) {
			this.authItems = authItems;
			return this;
		}
	}
}
